package com.juqimiao.raccoon.commodity.domain.reference;
import com.juqimiao.linn.domain.ValueObject;
import com.juqimiao.raccoon.commodity.domain.ExtensionFeature;
import com.sun.istack.internal.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 属性参考值。
 *
 * @author Collin Cai
 */
@Data
public class ReferenceValue extends ValueObject implements Comparable<ReferenceValue> {
    /**
     * 属性参考值ID.
     */
    private String valueId;
    /**
     * 父参考值
     */
    private String parentValId;
    /**
     * 属性参考值组的名称
     */
    private String RefName;
    /**
     * 属性值
     */
    private String name;
    /**
     * 属性值别名
     */
    private String aliasName;
    /**
     * 是否为父类目属性, 如果为True， recommendedValue将作为一个Property的值的父目录属性值。
     */
    private boolean parent;
    /**
     * 状态。可选值:normal(正常),deleted(删除)
     */
    private String status;
    /**
     * 排列序号。取值范围:大于零的整数
     */
    private int sortOrder;
    /**
     * 属性值features，比如在为颜色属性的情况下，features的数据为：
     * key='item_must_image', value='true'
     */
    private List<ExtensionFeature> features;

    private List<ReferenceValue> childValues;

    @Override
    public int compareTo(@NotNull ReferenceValue value) {
        return this.sortOrder - value.sortOrder;
    }
}
